package com.hippoframework.bean;
import java.util.List;

/**
 * @author TylerW
 * @date 1/15/2020 4:33 PM
 */
public interface BeanDefinition {

    String SINGLETON = "singleton";

    String PROTOTYPE = "prototype";

    Class<?> getBeanClass();

    String getScope();

    boolean isSingleton();

    boolean isPrototype();

    String getInitMethodName();

    boolean isLazyInit();

    void setLazyInit(boolean lazyInit);

    String getBeanClassName();

    void setBeanClassName(String beanClassName);

    void setDependsOn(List<DependencyDescriptor> dependsOn);

    List<DependencyDescriptor> getDependsOn();

    void setPrimary(boolean primary);

    boolean isPrimary();

    boolean isAbstract();

    String getBeanName();

    void setBeanName(String beanName);

    FactoryBean<?> getFactoryBean();

    void setFactoryBean(FactoryBean<?> factoryBean);

}
